/**
 *******************************************************************************
 *                       Continental Confidential
 *                  Copyright (c) Continental AG. 2017
 *
 *      This software is furnished under license and may be used or
 *      copied only in accordance with the terms of such license.
 *******************************************************************************
 * @file    main.cpp
 * @brief   应用程序入口文件
 * @note    中文注释：程序主入口，初始化应用程序实例和主窗口，启动事件循环
 *          English: Application entry point, initializes application instance and main window, starts event loop
 *******************************************************************************
 */
#include "MainWindow.h"
#include <QCoreApplication>
#include <QApplication>

/**
 * @brief 应用程序主函数
 * @param argc 命令行参数数量
 * @param argv 命令行参数数组
 * @return 程序退出状态码（0表示成功，非0表示错误）
 * @details 初始化Qt应用程序，创建并显示主窗口，建立退出信号连接，启动事件循环
 */
int main(int argc, char *argv[])
{
    // 创建Qt应用程序实例，传入命令行参数
    QApplication a(argc, argv); // TODO: Qt5.15.2升级 - 检查QApplication构造函数是否有新参数或推荐用法
    
    // 创建主窗口对象
    MainWindow w; // TODO: C++17升级 - 考虑使用直接列表初始化
    
    // 显示主窗口
    w.show();

    // 连接应用程序退出信号到主窗口的退出信号
    // 确保主窗口有机会在应用程序退出前进行清理工作
    QObject::connect(&a, SIGNAL(aboutToQuit()), &w, SIGNAL(aboutToQuit())); // TODO: Qt5.15.2升级 - 使用新的函数指针语法连接信号槽
    
    // 运行应用程序事件循环，等待用户交互
    return a.exec(); // TODO: Qt5.15.2升级 - 检查QApplication::exec()的返回值处理是否有变化
}
